package com.zt.chatgpt.types.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author: zt
 * @Description: glm所属模型
 * @create: 2024-05-22 23:44
 */

@Getter
@AllArgsConstructor
public enum ChatGLMModel {


    CHATGLM_6B_SSE("chatGLM_6b_SSE"),
    CHATGLM_LITE("chatglm_lite"),
    CHATGLM_LITE_32K("chatglm_lite_32k"),
    CHATGLM_STD("chatglm_std"),
    CHATGLM_PRO("chatglm_pro"),
    CHATGLM_TURBO("chatglm_turbo"),
    GLM_3_5_TURBO("glm-3-turbo"),
    COGVIEW_3("cogview-3"),
    GLM_4("glm-4"),
    GLM_4V("glm-4v"),
    ;
    private final String code;

    public static ChatGLMModel get(String code) {
        switch (code) {
            case "glm-3-turbo":
                return ChatGLMModel.GLM_3_5_TURBO;
            case "glm_4":
                return ChatGLMModel.GLM_4;
            case "glm-4v":
                return ChatGLMModel.GLM_4V;
            case "chatglm_turbo":
                return ChatGLMModel.CHATGLM_TURBO;
            case "cogview-3":
                return ChatGLMModel.COGVIEW_3;
            case "chatGLM_6b_SSE":
                return ChatGLMModel.CHATGLM_6B_SSE;
            case "chatglm_lite":
                return ChatGLMModel.CHATGLM_LITE;
            case "chatglm_lite_32k":
                return ChatGLMModel.CHATGLM_LITE_32K;
            case "chatglm_std":
                return ChatGLMModel.CHATGLM_STD;
            case "chatglm_pro":
                return ChatGLMModel.CHATGLM_PRO;
            default:
                return ChatGLMModel.CHATGLM_6B_SSE;
        }
    }
}
